#ifndef __MOBILELIB_DIRECTSHOWWRAPPER_DIRECTSHOWWRAPPER_H__
#define __MOBILELIB_DIRECTSHOWWRAPPER_DIRECTSHOWWRAPPER_H__

#include "stdafx.h"

#include <dshow.h>
#include <ddraw.h>

/// <summary>
///		This is the work around to resolve the issue with dxtrans.h file missing.
/// </summary>
#pragma include_alias( "dxtrans.h", "qedit.h" )
#define __IDxtCompositor_INTERFACE_DEFINED__
#define __IDxtAlphaSetter_INTERFACE_DEFINED__
#define __IDxtJpeg_INTERFACE_DEFINED__
#define __IDxtKey_INTERFACE_DEFINED__

#include <qedit.h>
#include <comdef.h>

#define BEGIN_DIRECTSHOWWRAPPER_NAMESPACE	\
			namespace DirectShowWrapper {	\

#define END_DIRECTSHOWWRAPPER_NAMESPACE }

#define RETURN_FALSE_ON_FAILED(call)        \
            if(call != S_OK) return false

_COM_SMARTPTR_TYPEDEF(IBaseFilter,				__uuidof(IBaseFilter)); 
_COM_SMARTPTR_TYPEDEF(ICreateDevEnum,			__uuidof(ICreateDevEnum)); 
_COM_SMARTPTR_TYPEDEF(IGraphBuilder,			__uuidof(IGraphBuilder)); 
_COM_SMARTPTR_TYPEDEF(ICaptureGraphBuilder2,	__uuidof(ICaptureGraphBuilder2)); 
_COM_SMARTPTR_TYPEDEF(IMediaControl,			__uuidof(IMediaControl)); 
_COM_SMARTPTR_TYPEDEF(IMediaEvent,				__uuidof(IMediaEvent)); 
_COM_SMARTPTR_TYPEDEF(ISampleGrabber,   		__uuidof(ISampleGrabber)); 
_COM_SMARTPTR_TYPEDEF(IVideoWindow,   		    __uuidof(IVideoWindow)); 

#endif